﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dominio;

namespace Persistencia
{
    public class BrCarpeta : Broker
    {
        public override void Agregar(OPersistente o)
        {
            Carpeta carpeta = (Carpeta)o;
            string sentencia = "";
            if (carpeta.Padre != null)
            {
                sentencia = "INSERT INTO CARPETA (OID, OIDCARPETAPADRE, NOMBRE) VALUES (\'" + carpeta.Oid + "\', \'" +
                    carpeta.Padre.Oid + "\', \'" + carpeta.Nombre + "\')";
            }
            else
            {
                sentencia = "INSERT INTO CARPETA (OID, OIDCARPETAPADRE, NOMBRE) VALUES (\'" + carpeta.Oid + "\', \'" +
                    null + "\', \'" + carpeta.Nombre + "\')";
            }
            conexion.Ejecutar(sentencia);                
        }

        public override void Modificar(OPersistente o)
        {
            //Pedido pe = (Pedido)o;
            //string sentencia = "UPDATE PEDIDO SET FECHA_ENTREGA =\'" + pe.FechaEntrega.ToString() + "\' , CLIENTE =" + "\'" + pe.Cliente.Oid +
            //    "\' , PRODUCTO=\'" + pe.Producto.Oid + "\', COMPLETADO=" + pe.Completado.ToString() + ", CANT_UNIDADES_PEDIDAS=" + pe.CantUnidadesPedidas.ToString() + ", FECHA_COMPLETADO=\'" + pe.FechaCompletado.ToString() + "\' WHERE OID = \'" + pe.Oid + "\'";
            //conexion.Ejecutar(sentencia);
        }

        public override void Eliminar(OPersistente o)
        {
            //Pedido pe = (Pedido)o;
            //string sentencia = "UPDATE PEDIDO SET BORRADO = True WHERE OID = \'" + pe.Oid + "\'";
            //conexion.Ejecutar(sentencia);
        }

        public override void TraerDatos(OPersistente o)
        {
            Carpeta carpeta = (Carpeta)o;
            string sentencia = "SELECT * FROM CARPETA WHERE OID = \'" + carpeta.Oid + "\'";
            conexion.TraerDatos(sentencia);
            conexion.SiguienteRegistro();
            carpeta.Oid = conexion.ObtenerValor(0).ToString();
            carpeta.Padre.Oid = conexion.ObtenerValor(1).ToString();
            carpeta.Nombre = conexion.ObtenerValor(2).ToString();
            conexion.FinConsulta();
        }

        public override List<OPersistente> TraerLista(OPersistente o)
        {
            List<OPersistente> lista = new List<OPersistente>();
            Carpeta carpeta = (Carpeta)o;
            string sentencia = "SELECT * FROM CARPETA";
            conexion.TraerDatos(sentencia);
            while (conexion.SiguienteRegistro())
            {
                carpeta = new Carpeta();
                carpeta.Oid = conexion.ObtenerValor(0).ToString();
                carpeta.Padre.Oid = conexion.ObtenerValor(1).ToString();
                carpeta.Nombre = conexion.ObtenerValor(2).ToString();
                lista.Add(carpeta);
            }
            conexion.FinConsulta();
            return lista;
        }
    }
}
